home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / pdselect / awnp / awnp-docs / demos / dropbox.rx < prev    next >
Text File  |  2000-02-16  |  4KB  |  186 lines

  1. /*
  2. App Icon and Pattern Match demo for AWNPipe
  3. William H.M Parker 29 Jun 1999
  4. */
  5.  
  6. if ~show('L','rexxsupport.library') then
  7. if ~addlib('rexxsupport.library',0,-30,0) then
  8. exit(20)
  9. parse source . . called .
  10. call readtool()
  11. call buildgui
  12. do while ~eof(ca)
  13. parse value readln(ca) with in ' ' in1
  14. if in='app' then call typecheck()
  15. end
  16. call cleanup
  17.  
  18. exit
  19.  
  20. runit:
  21. if tool.i='drawer' then call drawer()
  22. else if tool.i='image' then call image()
  23. else if tool.i='text' then call text()
  24. else do
  25. parse var tool.i t1 '%f' t2
  26. address command run t1||in1||t2
  27. end
  28. if multi~=1 then return(1)
  29. return(0)
  30.  
  31. typecheck:
  32.  
  33. do i=0 for pfh
  34. call writeln(p.i,in1)
  35. match=readln(p.i)
  36. if match then if runit() then return
  37. end  /*for pfh*/
  38.  
  39. if((right(in1,1)~=':')&(right(in1,1)~='/')&(pos(':',in1)>0)) then do
  40. do i=0 for bfh
  41. call open(sin,in1)
  42. call writeln(b.i,c2x(readch(sin,12)))
  43. call close(sin)
  44. match=readln(b.i)
  45. if match then if runit() then return
  46. end
  47. end  /*for bfh*/
  48.  
  49. return
  50.  
  51. image:
  52. call open(ca1,"awnpipe:1/xc")
  53. call writeln(ca1,'title "'in1'" defg ig ')
  54. call readln(ca1)
  55. call writeln(ca1,'bitmap fn "'strip(in1)'"')
  56. parse value readln(ca1) with . wi hi
  57. if wi<200 & hi <200 then do
  58. call writeln(ca1,"image")
  59. call readln(ca1);
  60. end
  61. else do
  62. /*browser node images have problems if taler then 255 so split the image up*/
  63. call writeln(ca1,'listbrowser arrows minw 200 minh 200')
  64. call readln(ca1)
  65. fntxt='fn ""'
  66. mhi=0
  67. do while mhi<hi-200
  68.         call writeln(ca1,'bitmap trans 'fntxt' anim 0|'mhi'|'wi'|200|0|0|0')
  69.         call readln(ca1)
  70.     call writeln(ca1,'browsernode gt ¶ ')
  71.         call readln(ca1)
  72. mhi=mhi+200
  73. fntxt=''
  74. end
  75.         call writeln(ca1,'bitmap trans 'fntxt' anim 0|'mhi'|'wi'|'hi-mhi'|0|0|0')
  76.         call readln(ca1)
  77.     call writeln(ca1,'browsernode gt ¶ ')
  78.         call readln(ca1)
  79. end
  80. call writeln(ca1,"open")
  81. call close(ca1)
  82. return
  83.  
  84. text:
  85. call open(ca1,"awnpipe:1/xc")
  86. call writeln(ca1,'"'in1'" defg ig q ')
  87. call writeln(ca1,"layout minw 400 minh 200 b 0")
  88. call writeln(ca1,'textfield  arrows gt 0  bd ro b 0 datain  "'strip(in1)'"')
  89. call writeln(ca1,"le")
  90. call writeln(ca1,"open")
  91. call close(ca1)
  92. return
  93.  
  94. drawer:
  95. call open(ca1,"awnpipe:1/xc")
  96. call writeln(ca1,'"'in1'" defg ig q ')
  97. call writeln(ca1,'listbrowser ro lbl "Name|Size|Date|Time|Protection|Key|Path" arrows minw 400 minh 200 st')
  98. address command 'c:list >awnpipe:2/f "'strip(in1)'" lformat "browsernode gt *"%n|%l|%d|%t|%a|%k|%s%s*" "'
  99. call open(ca2,"awnpipe:2")
  100. lst=readch(ca2,65000)
  101. call close(ca2)
  102. call writeln(ca1,lst)
  103. call writeln(ca1,"open")
  104. close(ca1)
  105. return
  106.  
  107. buildgui:
  108. call open(ca,"awnpipe://xc")
  109. call writeln(ca,'"DropViewer" app ig q db dg cg a ii "'called'" it ACTIVE m')
  110. call writeln(ca,"layout s1 so cj b 0")
  111. call writeln(ca,'label gt " Drop file or drawer icons *n here to view . "')
  112. call writeln(ca,"le")
  113. call writeln(ca,"open")
  114. if iconify=1 then call writeln(ca,"id 0 s 32")
  115. call writeln(ca,"m")
  116. return
  117.  
  118. readtool:
  119. pfh=0
  120. bfh=0
  121. p.pfh='p'||pfh
  122. b.bfh='b'||bfh
  123. open(tt,'awnpipe:/xi'called)
  124. call readln(tt)
  125. call readln(tt)
  126. call readln(tt)
  127. do while ~eof(tt)
  128. in=readln(tt)
  129. parse var in in0 ' ' in1 '=' in2
  130. if in0='multi' then multi=1
  131. if in0='iconify' then iconify=1
  132.  
  133. if in0='pat' then do
  134. tool.pfh=in2
  135. call open(p.pfh,'awnpipe:/xm')
  136. call writeln(p.pfh,in1)
  137. in=readln(p.pfh)
  138. if in='ok' then do
  139. /*say  in 'bad pattern !'*/
  140. end
  141. else do
  142. pfh=pfh+1
  143. p.pfh='p'||pfh
  144. end
  145. end
  146.  
  147. if in0='bin' then do
  148. btool.bfh=in2
  149. call open(b.bfh,'awnpipe:/xm')
  150. call tohex()
  151. call writeln(b.bfh,in1)
  152. in=readln(b.bfh)
  153. if in='ok' then do
  154. /*say  in 'bad pattern !'*/
  155. end
  156. else do
  157. bfh=bfh+1
  158. b.bfh='b'||bfh
  159. end
  160. end
  161.  
  162. end
  163. return
  164.  
  165. cleanup:
  166. call close(ca)
  167. do i=0 for pfh
  168. call close(p.i)
  169. end
  170. do i=0 for bfh
  171. call close(b.i)
  172. end
  173. return
  174.  
  175. tohex:
  176. hin=in1
  177. hout=''
  178. do while hin~=''
  179. t=left(hin,1)
  180. hin=substr(hin,2)
  181. if t='?' then hout=hout||'??'
  182. else hout=hout||c2x(t)
  183. end
  184. in1=hout
  185. return
  186.